Library description of the user interface for federated search results

ABSTRACT

Methods and computer-readable media are provided for performing a federated search using a library description file to locate multiple data sources. For a federated search, a library description can be used to describe a set of data sources searched, and may further be used to describe how search results should be presented to a user. The format of such a library description file can include multiple elements, some of which provide information on how to display the library and others that define which data sources are included in the library. The library description file can be created according to library description template.

RELATED APPLICATIONS

This application is a continuation of and claims benefit of priority toU.S. patent application Ser. No. 12/147,176, filed on Jun. 26, 2008,which application is herein incorporated by reference.

BACKGROUND

Federated searches are those performed across multiple data sources atonce, thereby providing a user efficient mechanism to search across manydata sources with the issuance of a single search query. A collection ofdata sources that share similar properties can be grouped into alibrary.

SUMMARY

In a federated search environment, a library description file can beused to describe a collection of locations. The format of a librarydescription file can provide several elements, such as information onhow to present the library to a user and other elements that define howto present search results for the library. Methods are also provided forthe creation of library description files.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter nor is it intended tobe used to limit the scope of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is described in detail below with reference to theattached drawing figures, wherein:

FIG. 1 is a block diagram of a computing system environment suitable foruse in implementing embodiments of the present invention;

FIG. 2 is a block diagram illustrating an library description file inaccordance with an embodiment of the invention;

FIG. 3 is a block diagram illustrating a location element in accordancewith an embodiment of the invention;

FIG. 4 is a flow diagram illustrating a method for creating a librarydescription file in accordance with an embodiment of the invention;

FIG. 5 is a flow diagram illustrating a method for performing afederated search upon a library and displaying the library and searchresults according to library description files, in accordance with anembodiment of the invention; and

FIG. 6 is block diagram illustrating an exemplary library in accordancewith an embodiment of the invention.

DETAILED DESCRIPTION

The subject matter of the present invention is described withspecificity herein to meet statutory requirements. However, thedescription itself is not intended to limit the scope of this patent.Rather, the inventors have contemplated that the claimed subject mattermight also be embodied in other ways, to include different steps orcombinations of steps similar to the ones described in this document, inconjunction with other present or future technologies. Moreover,although the terms “step” and/or “block” may be used herein to connotedifferent elements of methods employed, the terms should not beinterpreted as implying any particular order among or between varioussteps herein disclosed unless and except when the order of individualsteps is explicitly described.

A federated search is a search performed simultaneously upon multipledata sources. To aid in the efficiency of executing a federated search,multiple data sources can be grouped together into a library. Thelibrary can be comprised of data sources that have similar properties orcharacteristics. A user can decide which data sources to group togetherinto a library. Additionally, defaults can set by the user or computingdevice that provide for the automatic grouping of data sources into alibrary based on properties or characteristics of the data source. Alibrary description file can be created that describes, among otherthings, the data sources contained within the library as well as otherproperties of the library. A user may then select a particular libraryto perform a federated search upon, thereby providing a more efficientor effective search.

In one embodiment of the invention, computer storage media with a datastructure stored thereon is provided for storing data representinglibrary description files associated with libraries. The data structureincludes a first field containing data representing one or more locationlibrary elements, wherein one or more libraries are comprised of one ormore location elements. A second data field contains data representing adisplay format element for the one or more libraries. A third data fieldis provided that is derived from the first and second data fields, andrepresents a library description format for the one or more locations.

In another embodiment of the invention, a method of generating librarydescription files is provided. A description of one more locations isreceived that contains information describing a data source of thelocations. The locations are then grouped based on predefined criteriainto one or more groups. Library description files are created for eachof the groups and stored on a computer-readable medium.

In another embodiment, computer storage with computer-executableinstructions embodied thereon are provided for performing a method ofexecuting a federated search upon libraries and displaying the librariesand search results according to library description files. A searchquery is received along with a selection of libraries to perform thesearch query upon. Each of the libraries have corresponding librarydescription files. A list of search results is generated by accessinglocations defined by the library description files. The list of searchresults and libraries searched are presented in an arrangement definedby the library description files.

Having briefly described an overview of embodiments of the presentinvention, an exemplary operating environment suitable for use inimplementing embodiments of the present invention is described below.

Referring to the drawings in general, and initially to FIG. 1 inparticular, an exemplary operating environment for implementingembodiments of the present invention is shown and designated generallyas computing device 100. Computing device 100 is but one example of asuitable computing environment and is not intended to suggest anylimitation as to the scope of use or functionality of the invention.Neither should the illustrated computing environment be interpreted ashaving any dependency or requirement relating to any one or combinationof components/modules illustrated.

The invention may be described in the general context of computer codeor machine-useable instructions, including computer-executableinstructions such as program components, being executed by a computer orother machine, such as a personal data assistant or other hand-helddevice. Generally, program components including routines, programs,objects, components, data structures, and the like, refer to code thatperforms particular tasks, or implements particular abstract data types.Embodiments of the present invention may be practiced in a variety ofsystem configurations, including hand-held devices, consumerelectronics, general-purpose computers, specialty-computing devices, andthe like. Embodiments of the present invention may also be practiced indistributed computing environments where tasks are performed byremote-processing devices that are linked through a communicationsnetwork.

With continued reference to FIG. 1, computing device 100 includes a bus110 that directly or indirectly couples the following devices: memory112, one or more processors 114, one or more presentation components116, input/output (I/O) ports 118, I/O components 120, and anillustrative power supply 122. Bus 110 represents what may be one ormore busses (such as an address bus, data bus, or combination thereof).Although the various blocks of FIG. 1 are shown with lines for the sakeof clarity, in reality, delineating various components is not so clear,and metaphorically, the lines would more accurately be grey and fuzzy.For example, one may consider a presentation component such as a displaydevice to be an I/O component. Also, processors have memory. Theinventors hereof recognize that such is the nature of the art, andreiterate that the diagram of FIG. 1 is merely illustrative of anexemplary computing device that can be used in connection with one ormore embodiments of the present invention. Distinction is not madebetween such categories as “workstation,” “server,” “laptop,” “hand-helddevice,” etc., as all are contemplated within the scope of FIG. 1 andreference to “computer” or “computing device.”

Computing device 100 typically includes a variety of computer-readablemedia. By way of example, and not limitation, computer-readable mediamay comprise Random Access Memory (RAM); Read Only Memory (ROM);Electronically Erasable Programmable Read Only Memory (EEPROM); flashmemory or other memory technologies; CDROM, digital versatile disks(DVD) or other optical or holographic media; magnetic cassettes,magnetic tape, magnetic disk storage or other magnetic storage devices,or any other medium that can be used to encode desired information andbe accessed by computing device 100.

Memory 112 includes computer-storage media in the form of volatileand/or nonvolatile memory. The memory may be removable, non-removable,or a combination thereof. Exemplary hardware devices include solid-statememory, hard drives, optical-disk drives, and the like. Computing device100 includes one or more processors that read data from various entitiessuch as memory 112 or I/O components 120. Presentation component(s) 116present data indications to a user or other device. Exemplarypresentation components include a display device, speaker, printingcomponent, vibrating component, etc. I/O ports 118 allow computingdevice 100 to be logically coupled to other devices including I/Ocomponents 120, some of which may be built in. Illustrative componentsinclude a microphone, joystick, game advertisement, satellite dish,scanner, printer, wireless device, and the like.

Turning now to FIG. 2, a block diagram is presented that illustrates alibrary description file. The library description file 201 can include aplurality of elements that define the characteristics and properties ofthe library 200. Included within the library description file 201 can bea location element 210, a display format element 220, a link element230, and a properties element 250.

It will be appreciated that location 210, display format element 220,link element 230, and properties element 250 can be XML elements, withthe location description file being the root element. Besides theelements displayed in FIG. 2, other elements may be included as well,such as a name element, a description element, an author element, ascope element, or a condition list element. For example, a name elementcan be used to display the name of the library, and a descriptionelement can include a description of the library. An author element canbe used to display the author or owner of the location description file.By way of example only, a scope element may be used to provideinformation related to the scope of the locations associated with thelibrary 200. The scope element can provide exclusions to the search uponthe library 200. In general, these elements provide a way to display thelibrary description file 210 or information related to the librarydescription file 210.

The location element 210 can define the information necessary to connectto a data source. The data source can be any source of information thata user desires to search. For example, a user's email service could be adata source. In instances where a user accesses multiple email services,either through the internet and webmail services or other methods, eachof the email services would be a data source. Each of the data sourcesthen has a corresponding location element 210 that defines informationnecessary to connect to the data source.

The display format element 220 defines how the library 200 should bepresented. This can be information regarding the icon or other visualindicia that should be used to represent the library in a user interfaceof the computing device. In addition, the display format element 220 caninclude information as to how search results are presented for searchqueries performed upon the library 200.

The link element 230 is a shell link type element point to an icon(e.g., in icon image file format) representing the library descriptionfile, or a template for creating the library description file. A shelllink is a data object that contains information used to access anotherobject. The types of objects that can be access through shell linksinclude folders, files, disk drivers, or printers. A shell linktherefore allows a user or an application to access an object fromanywhere in the namespace, even if the user or the application does notknow the current name and location of the object.

The properties element 240 can include information concerning theproperties of the library 200. This can include information, forinstance, detailing the format and syntax required of search queriesthat are issued to the library. It can also include informationdetailing the general content of the library and the data sourcesincluded therein.

The library description file 201 can be communicated to other users viaa variety of methods. The library description file 201 can be downloadedto a user's device, where it may be added to the user's library oflocations and corresponding data sources to be searched. Alternatively,the user can receive library description file 201 as an attachment in anemail, and after the user downloads the library description file 201 itcan be added to the user's list of libraries to be searched. One skilledin that art will appreciate that the self-contained nature of thelibrary description file 201 allows such a file to be share easily, viaURL or email, amongst users.

With reference now to FIG. 3, a block diagram illustrating a locationelement is presented in accordance with an embodiment of the invention.The location element 210, also depicted in relation to FIG. 2, cancontain information describing data sources 310 and 320. Therepresentation of data sources 310 and 320 within location element 210is for purposes of discussion only, as the data sources 310 and 320 arenot physically contained with the location element 210. Rather, thelocation element 210 contains information that the data sources 310 and320 and methods for communicating with data sources 310 and 320.

As described above in relation to FIG. 2, the data source 310 can be anysource of information that a user desires to search. For example, auser's collection of digital images or pictures could be a data source.In instances where a user accesses pictures from multiple storagelocations, such as an internet photo sharing website or pictures storedlocally on the user's computing device, each of the storage locationswould be a data source. Each of the data sources then has acorresponding location element 210 that defines information necessary toconnect to the data source.

With reference now to FIG. 4, a flow diagram illustrating a method forcreating a library description file is presented, according to anembodiment of the invention. In block 410, a description is received ofone or more locations. The description contains information describing adata source of each of the locations. The information can define thecontent of the data source, such as if the data source contains emails,document, or pictures.

At block 420, the locations are grouped based on predefined criteriainto one or more groups. The groups can be referred to as libraries. Thepredefined criteria can group the locations based on their content, withlocations having similar content being grouped together. For instance,all locations containing emails could be grouped together into alibrary. Additionally, other criteria can be used to group the locationsinto libraries. For example, locations containing data that is createdby the same entity or author could be grouped together into a library.In this manner, a location containing video files created by aparticular artist could be grouped with a location containing audiofiles created by the particular artist. While exemplary criteria havebeen provided for the sake of clarity, it should be understood that anynumber of criteria can be used to group locations into a library.

In block 430, library description files are created for each of thegroups. The library description file is comprised of multiple elementsthat describe the libraries. The elements can be similar to thosedescribed in relation to FIG. 2, above. Generally, the information caninclude elements that define the content of the library, such as thelocations included therein. In addition, elements in the librarydescription file can define the appearance of the library in the userinterface of the computing device. This can include a particular icon orgraphic style that should be used in presenting the library in the userinterface. Elements can also define the appearance of search resultsthat are generated upon a search of the library.

The library description file can also be created according to a librarydescription file template. This template can define the syntax andlayout of the file, and ensures that library description files arecreated in a consistent manner. In this manner, library descriptionfiles can be created according to a standard format. After the creationof the library description files in block 430, they are stored on acomputer-readable medium in block 440.

Turning now to FIG. 5, a flow diagram depicting a method for performinga federated search upon a library and displaying the library and searchresults according to library description files is presented. In block510 a search query is received. The search query may be issued by a userinto a computing device. The library description files of the one ormore libraries selected by a user in block 520 can define the format ofthe search query that can be conducted upon the corresponding library.The portion of the user interface for receiving a search query from theuser could then be altered based on the format required by the librarydescription file.

A selection of libraries to perform the search query upon is received atblock 520. Each of the libraries can include one or more locations andcorresponding data sources. A corresponding library description a fileis provided that, among other things, describes the locations includedin the library and their capabilities. Specific libraries can includeinformation that is related in content. For instance, a library could becreated that includes documents that have similar content or subjectmatter. A library could then be created for a user's financialdocuments. The documents can reside in different locations andcorresponding data sources, which in this example might be directorieson in computer readable medium on the computing device. A library wouldthen include the directories that contain financial documents. A userwould therefore be able to perform a more effective and efficient searchby selecting a specific library to search, a more efficient andeffective search can be performed across the locations and data sources.

At block 530, a list of search results is generated by accessinglocations included in the library description files. The list of searchresults can be generated by applying a search algorithm to the selectedlibraries. The search algorithm seeks to find information in thelibraries that likely satisfies the search query. One skilled in the artwill recognize that there are numerous ways to perform a search, and assuch, further description of search algorithms will not be provided.

In block 540, a list of search results and the libraries from which theywere generated are presented in an arrangement defined by the librarydescription files. The library description files can define the visualappearance of both the library and the search result lists. Forinstance, the formatting of the search results in the user interface canbe specified by the library description files. Further, the appearanceof the search results can be specified in the library description file.

With reference now to FIG. 6, a block diagram illustrating an exemplarylibrary in accordance with an embodiment of the invention is presented.Email library 600 is a typical library that is comprised of multiplelocations and corresponding data sources. Included within the emaillibrary 600 is a web-based email location 610, an Outlook® location 620,and a Hotmail® location 630. Both Outlook® and Hotmail® are registeredtrademarks of the Microsoft Corporation, headquartered in Redmond, Wash.Included with the locations 610, 620 and 630 can be informationdescribing the location of the corresponding data sources. Thisinformation can take many forms and serves to provide the location ofthe corresponding data source. When a search is made upon the emaillibrary 600, the data sources corresponding to the locations 610, 620and 630 can be located and searched accordingly.

Each of the locations 610, 620 and 630 contain similar content, namelyemail, and are grouped together into the email library 600. A librarydescription file for the email library 600 can then include informationdescribing the content of the locations 610, 620 and 630 andcorresponding data sources. The file can also include informationdescribing how to present the email library 600 in the user interface.The presentation of the search results generated upon a search of theemail library 600 can also be defined in the library description file.

Additionally, the library description file can define the syntax andother characteristics or specific features of search queries that can becarried out on the email library 600. These specific features caninclude ways to search the library or filter search result generatedupon a search of the library.

In the case of the email library 600, these can take the form ofparticular types of search queries, such as those limited to the subjectline of emails, or the sender of the email. In libraries describedabove, such as those relating to pictures, the specific features couldbe related to allowing search queries for pictures that containparticular subjects. This example can be effectuated by analyzinginformation contained in the metadata for each picture in a library inorder to the identity of the subject of the picture.

The present invention has been described in relation to particularembodiments, which are intended in all respects to be illustrativerather than restrictive. Alternative embodiments will become apparent tothose of ordinary skill in the art to which the present inventionpertains without departing from its scope.

From the foregoing, it will be seen that this invention is one welladapted to attain all the ends and objects set forth above, togetherwith other advantages which are obvious and inherent to the system andmethod. It will be understood that certain features and subcombinationsare of utility and may be employed without reference to other featuresand subcombinations. This is contemplated by and is within the scope ofthe claims.

1. One or more computer storage media having stored thereon a datastructure for storing data representing library description filesassociated with libraries, the data structures comprising: a first datafield containing data representing multiple location elements, whereineach of the location elements indentify a data source associated with alibrary and information needed to connect to the data source, whereinthe library is a group of data sources grouped together for simultaneoussearching, and wherein the data sources are not physically containedwithin the library; a second data field containing data representing adisplay format element for the one or more libraries, wherein thedisplay format element defines formatting of a visual indicia used torepresent the library in a user interface; and a third data fieldderived from the first and second data fields representing a librarydescription format of the group of data sources.
 2. The one or morecomputer storage media of claim 1, wherein the data structure furthercomprises a fourth data field containing data representing a scopeelement providing information related to scopes of locations associatedwith the library, wherein the scope element provides exclusions tosearchers upon the library.
 3. The one or more computer storage media ofclaim 1, wherein the data structure further comprises a data fieldincluding link elements corresponding to the group of data sources. 4.The one or more computer storage media of claim 1, wherein the datastructure further comprises a data field representing a shell linkelement
 5. The one or more computer storage media of claim 1, whereinthe data structure further comprises a fifth data field containing datarepresenting a properties element including information detailing aformat and a syntax required of search queries that are issued to thelibrary.
 6. The one or more computer storage media of claim 1, whereinthe data structure further comprises a sixth data field containing datarepresenting a shell link element, wherein the shell link element pointsto an icon representing the library description file.
 7. The one or morecomputer storage media of claim 1, wherein the display format elementincludes information defining how search results are presented forsearch queries performed upon the library.
 8. A method of creating alibrary description file, the method comprising: receiving, at acomputing device, a description of one or more locations, saiddescription containing information describing a data source of each ofthe one or more locations; automatically grouping, at the computingdevice, a subset of the one or more locations based on predefinedcriteria into a library, wherein the library is a group of data sourcesgrouped together for simultaneous searching, and wherein the datasources are at different locations; creating, at a computing device, alibrary description file for the library, wherein said librarydescription file is comprised of information describing the libraryincluding a display format element for the library and at least onescope element for the library, wherein the display format elementdefines formatting of a visual indicia used to represent the library ina user interface and for how search results are presented for searchqueries performed upon the library, wherein the location elementcontains methods for communicating within the group of data sources,wherein the scope element provides information related to scopes of theone or more locations associated with the library and exclusions tosearchers upon the library; and storing the library description file ona computer-readable medium.
 9. The method of claim 8, wherein theinformation describing the data source of the location defines a contentof the data source corresponding to the one or more locations.
 10. Themethod of claim 9, wherein the criteria define that locations aregrouped into libraries based on their content.
 11. The method of claim8, wherein the library description file includes link elements.
 12. Themethod of claim 8, wherein the library description file includes one ormore shell link elements.
 13. The method of claim 8, wherein the librarydescription file includes a properties element.
 14. The method of claim8, wherein the library description file is created using a librarydescription template.
 15. One or more computer storage media withcomputer-executable instructions embodied thereon for performing amethod of executing a federated search of one or more libraries anddisplaying the one or more libraries and search results according to oneor more library description files, the method comprising: receiving oneor more library description files from a different computing device;receiving a search query; receiving a selection of a library to performthe search query upon, wherein said library is described by the librarydescription file, and wherein the library is a group of data sourcesgrouped together for simultaneous searching; generating a list of searchresults by accessing one or more locations defined by the one or morelibrary description files; and presenting a list of search results. 16.The one or more computer storage media of claim 15, wherein the librarydescription file includes a link element.
 17. The one or more computerstorage media of claim 15, wherein the library description file includesone or more elements in a shell link format.
 18. The one or morecomputer storage media of claim 15, wherein the library description fileincludes a properties element.
 19. The one or more computer storagemedia of claim 15, wherein the library description file includes displayelement that defines how the search results and library are presented.20. The one or more computer storage media of claim 15, wherein thelibrary description file is generated using library descriptiontemplate.